function [ fy, fx ] = get_math_fq_direct( amiga_model, audio_filter_mode )

fs = get_sampling_fq();

if ~strcmpi(amiga_model, '')
    [C1, R1, C2, R2, C3 ,R3] = get_amiga_filter_params(amiga_model);
end

fxp = linspace(fix(-fs/2), fix(fs/2), fs-1);

if strcmpi(audio_filter_mode, 'led filter off')
    
    tau = R1*C1;
    fy = 1./tau.*(1./(1/tau+2*pi*1i*fxp));
    
elseif strcmpi(audio_filter_mode, 'led filter on')
    
    a = R2*R3*C2*C3;
    b = C3*(R2+R3);
    delta = b^2 - 4*a;
    a1 = -(-b + sqrt(delta)) / (2 * a);
    b1 = -(-b - sqrt(delta)) / (2 * a);
    c = 1 / ((b1-a1)*a);
    c1 = 1 / R1 / C1;
    c2 = c1*c/(c1-a1)/(c1-b1);
    
    fy = c2*(c1-b1).*(1./(a1+2*pi*1i*fxp)) - ...
        c2*(c1-a1).*(1./(b1+2*pi*1i*fxp)) - ...
        c2*(a1-b1).*(1./(c1+2*pi*1i*fxp));
    
elseif strcmpi(audio_filter_mode, 'led filter only')
    
    error('need calc');
    
    a = R2*R3*C2*C3;
    b = C3*(R2+R3);
    delta = b^2 - 4*a;
    a1 = -(-b + sqrt(delta)) / (2 * a);
    b1 = -(-b - sqrt(delta)) / (2 * a);
    c = 1 / ((b1-a1)*a);
    c1 = 1 / R1 / C1;
    c2 = c1*c/(c1-a1)/(c1-b1);
    
    fy = c2*(c1-b1).*(1./(a1+2*pi*1i*fxp)) - ...
        c2*(c1-a1).*(1./(b1+2*pi*1i*fxp)) - ...
        c2*(a1-b1).*(1./(c1+2*pi*1i*fxp));
    
elseif strcmpi(audio_filter_mode, 'unfiltered')
    
    fy = ones(1, size(fxp, 2));
    
end

fy = fftshift(fy);

if (nargout == 2)
    fx = fxp;
end

end